package edu.yngsxy.communityservice.core.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import edu.yngsxy.communityservice.core.dao.WkBaseMapper;
import edu.yngsxy.communityservice.core.service.WkBaseService;

// 泛型参数：M是Mapper类型，E是实体类类型
public class WkBaseServiceImpl<M extends WkBaseMapper<E>, E> extends ServiceImpl<M, E> implements WkBaseService<E> {

    /**
     * 通用分页查询实现
     * @param pageNum 页码（从1开始）
     * @param pageSize 每页条数
     * @return 分页结果对象
     */
    @Override
    public IPage<E> selectPage(Integer pageNum, Integer pageSize) {
        // 创建分页对象，pageNum 从 1 开始
        Page<E> page = new Page<>(pageNum, pageSize);
        // 调用BaseMapper的selectPage方法（MyBatis-Plus提供的分页查询）
        return baseMapper.selectPage(page, null);
    }
    // 在WkServiceImpl中实现（使用queryEntity作为查询条件）
    @Override
    public IPage<E> selectPage(Integer pageNum, Integer pageSize, E queryEntity) {
        Page<E> page = new Page<>(pageNum, pageSize);
        QueryWrapper<E> queryWrapper = new QueryWrapper<>(queryEntity);
        return baseMapper.selectPage(page, queryWrapper);
    }
}

